package com.ztsoft.user.pojo.entity.user;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.*;
import com.ztsoft.user.pojo.vo.user.SysUserVo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * 用户对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("sys_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class SysUser extends BaseEntity {

    // 主键id
    @TableId(value = "user_id", type = IdType.ASSIGN_UUID)
    private String userId;
    // 所处部门
    private Long deptId;
    // 用户账号
    private String userAccount;
    // 用户密码
    private String userPassword;
    // 真实姓名
    private String userName;
    // 用户昵称
    private String nickName;
    // 账号类型（00系统用户）
    private String userType;
    // 用户邮箱
    private String email;
    // 手机号码
    private String phone;
    // 用户性别（1男、2女、3隐藏）
    private String gender;
    // 头像地址
    private String avatar;
    // 所属地市
    private String region;
    // 状态（1正常、2停用）
    private Integer status;
    // 逻辑删除（0未删除、1已删除）
    @TableLogic
    private Integer isDeleted;
    // 乐观锁
    @Version
    private Integer version;
    // 创建者
    private String createBy;
    // 创建时间
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    // 更新者
    private String updateBy;
    // 更新时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    // 备注
    private String remark;

    //角色名称
    @TableField(exist = false)
    private String roleName;

    public List<SysUserVo> getUserInfo(List<SysUser> sysUserList) {
        return JSON.parseArray(JSON.toJSONString(sysUserList), SysUserVo.class);
    }

}